/*
 * 蓝牙数据报定义
 */
abstract class DevcieDataBase {
  List<int> getPair();

  List<int> getStopPair();

  List<int> getSpeed(final int i);
  List<int> getDirection(final int i);

  List<int> getDataAt(final int index, final int value);
  List<int> getManyDataAt(final Map<int, int> map) {
    List<int> result = [];
    map.forEach((key, value) {
      result = getDataAt(key, value);
    });
    return result;
  }

  void fillAppId() {}

  ///////
  //停止运动
  List<int> stopControl() {
    return [];
  }

  //控制
  List<int> control(
      final int car, final int device, final int port, final int value) {
    return [];
  }

  //配对
  List<int> setUnAdvertiseAddress(
      final int car, final int device, final int atIndex) {
    return [];
  }

  //解除配对
  List<int> setAdvertiseAddress(
      final int car, final int device, final int atIndex) {
    return [];
  }

  List<int> actionStop() {
    return [];
  }

  //前进
  List<int> actionForward({bool reverse = false, double ratio = 1}) {
    return [];
  }

  //后退
  List<int> actionBackward({bool reverse = false, double ratio = 1}) {
    return [];
  }

  //左转
  List<int> actionLeft({bool reverse = false, double ratio = 1}) {
    return [];
  }

  //右转
  List<int> actionRight({bool reverse = false, double ratio = 1}) {
    return [];
  }

  //左转前进
  List<int> actionForwardLeft(
      {bool verticalReverse = false, bool horizontalReverse = false}) {
    return [];
  }

  //右转前进
  List<int> actionForwardRight(
      {bool verticalReverse = false, bool horizontalReverse = false}) {
    return [];
  }

  //左转后退
  List<int> actionBackwardLeft(
      {bool verticalReverse = false, bool horizontalReverse = false}) {
    return [];
  }

  //右转后退
  List<int> actionBackwardRight(
      {bool verticalReverse = false, bool horizontalReverse = false}) {
    return [];
  }

  List<int> actionA(bool reverse) {
    return [];
  }

  List<int> actionB(bool reverse) {
    return [];
  }

  List<int> actionC(bool reverse) {
    return [];
  }

  List<int> actionD(bool reverse) {
    return [];
  }
}
